查看原文
其他

AWS 容器三大新品:K8s 发行版,免费镜像库和 “Game Changer”AWS Proton

开心小站长 云原生实验室 2021-05-26


更多奇技淫巧欢迎订阅博客:https://fuckcloudnative.io

前言

2020 年,容器云原生技术火的不能再火了。

上半年,DOIT 发布了《行业云原生应用白皮书》,下半年,阿里云发布《云原生架构白皮书》,腾讯云发布《腾讯云原生路线图手册》,华为云也提出了云原生 2.0 的概念,总之,2020 年的舆论场上,容器云原生很火,2021 年也会继续。

在 2020 年 12 月召开的 AWS re:invent 上,AWS 并没有发白皮书,也没有造新概念,而是老老实实发布了三款产品服务:

分别是面向公众的免费容器镜像库服务 ECR Public,自动化的容器和 Serverless 部署工具 AWS Proton,以及可以让 EKS 本地化部署的 Kubernetes 发行版——EKS Distro。

三个发布都非常具有代表性,最具有突破性的是 AWS Proton,它是对开发和运维人员职责的一次调整,能让开发人员更专注于开发本身,是改变行业规则(Game Changer)的发布。

此外,AWS 还发布了 Docker Hub 的免费替代品——ECR Public,开源了 EKS 源码的 EKS Distro(EKS-D),它将 EKS 延展到更多环境中,可视为 AWS 混合云战略的一次重要操作。

接下来,对于容器方面的三大发布做逐一的介绍。

1. ECR Public——Docker Hub 的免费替代品

2020 年 11 月,Docker Hub 对于免费用户的容器拉取用量做了一些限制,匿名和免费注册用户每六个小时最多能发出 100 和 200 个容器镜像拉取请求,想要继续享受无限制的使用,则需要付费订阅,费用为每人 5 美元/月,相当于一个入门级 vps 的费用。

另外,对于存放在 Docker Hub 但 6 个月未活动的镜像,则会被删除,免费用户需要注意保持镜像的活跃度,付费用户则可以就当什么都没发生过。

Docker Hub 这一决定在于想压缩成本,本身并没什么可说的,但开源社区的广大用户需要有一个能自由使用的镜像库,这时候云厂商站出来提供这种免费服务,其实是一件好事,AWS 最近发布的 ECR Public 正是在这一背景下才诞生的。

ECR(Amazon Elastic Container Registry)是 AWS 原本就有的私有的容器镜像库,新的 ECR Public 是公开对外的镜像库服务,私有的容器镜像库严格按存储容量付费,而新的公开的 ECR 则有较大额度的免费空间,基本可以认为是免费服务。

从策略上来看,是在鼓励将更多镜像公开供更多人用。

所有 ECR Public 用户都有 50GB 的免费存储空间,如果超过这个限制,需要象征性的支付点费用,所有匿名拉取镜像的人每月有 500GB 的免费数据带宽,注册用户能获得 5 TB 的免费数据带宽,如果是拉取到 AWS 的主机里,则没有拉取限制。

ECR Public 的网站[1]上目前已经托管了一些容器,包括一部分 AWS 自己的镜像,还有 MySQL、Wordpress 等百上千个 AWS 合作伙伴的镜像,比如来自 Bitnami, Canonical 和 HashiCorp 的镜像。

操作使用体验方面,基本跟使用 DockerHub 没区别,不过,ECR Public 使用的时候需要安装 AWS Cli,如果不是 AWS 用户则会觉得不太方便。好处是,由于 ECR Public 与 AWS 是集成的,比如,当 AWS CodeBuild 检测到修改一个 ECR Public 里的镜像后,会自动创建一个新的容器应用,AWS 用户会觉得更方便。

ECR Public 发布首先肯定会方便广大用户,尤其是 AWS 的用户,这算是 AWS 作为大型公有云服务商的一点应有的担当吧。当然,由于与 AWS 有一定的绑定关系,所以,这其实也是 AWS 在拓展自己的云原生应用生态。

2. AWS Proton——自动化的容器和 Serverless 部署工具

亚马逊 AWS 首席云计算企业战略顾问张侠在向中国区媒体介绍 AWS Proton,将其称之为一个 Game Changer(改变规则)的发布。

AWS Proton 是一个帮助运维人员自动配置管理基础设施的服务,也是一个面向开发人员的 Serverless 应用和容器应用代码的部署服务。它能让运维人员做好运维的工作,让开发人员可以只关注应用本身,能让两方面工作相互不影响。

AWS Proton 集成和协调各种各样的工具,包括基础设施配置、代码部署、监控和更新等各种工具,功能非常全面,负责编排和组织这些资源的是所谓的 Template(模块),它是 AWS Proton 的一个非常重要的元素,包括 Environment Template 和 Service Template 两种。

运维团队负责创建 Environment Template,用它来设置各种环境配置资源,从而部署一致的运行环境。

同时,运维团队会创建 Service Template,设置与 Environment Template 兼容的基础资源,CI/CD 工作流和监控方面的内容。它集成了常用的 CI/CD 工作流和观察工具,除了有 AWS 自己的相关方案,比如 CodePipeline 和 CloudWatch,也会有第三方的工具。

开发团队使用 Service Template 来部署应用,如果开发者有了写好的代码,将代码与 Service Template 关联起来,后续工作就由 AWS Proton 自己完成,它会自动调用 Service Template 里相关的 AWS 服务和参数,自动把代码交给 CI/CD 工作流来编译、测试和部署。

部署完成后,AWS Proton 会持续监控应用的运行状态,如果后续 Service Template 有改动,AWS Proton 会让原来使用这个 Template 的应用按照新的 Service Template 升级到新版本,整个过程都处于监控状态,如果新应用有问题,可以进行回滚。

AWS Proton 也是一个重磅级的发布,它能改变容器和 Serverless 应用的部署和迭代方式,在一致的基础设施平台上支撑成千上万个微服务和 Serverless 应用平稳运转,它能改变开发和运维的工作状态,让开发者和运维人员各司其职,相互不影响。

目前处于预览状态,不是特别的成熟,但大致框架是完善的。

3. EKS Distro——AWS 的 Kubernetes 发行版

EKS Distro(EKS-D)是 AWS 的 Kubernetes 发行版,所谓 Kubernetes 发行版,主要是为了解决 Kubernetes 太难用的问题,发行版在 Kubernetes 基础上做了许多延展,让更多人能方便地用起来。目前,常见的 Kubernetes 发行版有 Rancher,OpenShift 以及 KubeSphere(注:KubeSphere 与 EKS 配合使用,已上线 AWS Quick Starts)。

与这几个不同的是,AWS 的 K8s 发行版是从公有云商用服务 EKS 中发展而来的。EKS 是 AWS 托管的 Kubernetes 服务,它省去了用户打理 Kubernetes 的麻烦。但是,考虑到并不是所有人都会用云上的 EKS,于是,AWS 发布了 EKS 同款的开源软件——EKS Distro。

作为 Kubernetes 发行版,我认为 EKS Distro 的优势可以总结为以下四点:

  • 首先,节省成本。对用户来说,既然是开源的,那意味着收费上是免费的。
  • 其次,高自由度,用户可以在任意喜欢的环境中部署,包括本地硬件以及包括 AWS 在内的各种云平台上,这种自由度不仅能保护原有投资,也能更好满足多样化需求。
  • 第三点,可以避免合规性问题。由于合规和数据安全方面的顾虑,有些数据不能迁移上云,本地部署的 K8s 集群就显得非常有必要。
  • 第四点,降低管理复杂度。由于 K8s 大概每三到四个月就更新一次,在本地使用 K8s 需要花大量时间跟进 K8s 的更新,如果跟不上这个节奏,那将面临许多风险,比如兼容性问题和安全风险。运行着一个不被支持的 K8s 就好比 2021 年还在用 Windows 7 一样,心里能踏实吗?

AWS 在提供 EKS 服务过程中自然就成了 K8s 的专家,知道如何提供安全、稳定、可靠的 K8s 服务,而这些经验都将输出到 EKS 的发行版中。

EKS Distro 提供 Amazon EKS 用的安装代码,含有上游开源的 Kubernetes 组件和第三方工具,包括数据库、网络、存储等创建集群必要的组件,还有各种依赖包和更新补丁。EKS Distro[2] 目前已经可用,可以从 Github 上下载和测试。

更新节奏上,每当 Amazon EKS 更新后,EKS Distro 都会很快跟进,EKS Distro 所有代码都是开源的,所有工具都是开源的,同时,也提供了统一的参考配置,以便可重复构建一致的 K8s 环境,也便于 EKS Distro 与 Amazon EKS 保持一致,用统一的 API 来对接管理。

不难发现,发布 EKS Distro 最大的意义是延展 Amazon EKS 的生态,让用户在本地更多环境中建立与 Amazon EKS 对接的环境,让应用在云上、本地以及更多环境中运行,并能自由流动,实现混合云战略,

2021 年,AWS 还计划发布 EKS Anywhere,将提供可安装的软件包来让用户在本地创建和运行 K8s 集群,会提供自动化的 K8s 集群生命周期管理工具,让用户可以在生产环境中进行备份、恢复、补丁、升级等操作,并尽可能保持业务的连续性。

ECS 是 AWS 自己开发的容器服务,与 EKS 的定位相似。2021 年,AWS 还计划发布 ECS Anywhere,将 ECS 部署在本地。

张侠介绍说,有了 ECS Anywhere,客户就完全可以在 on-premises 环境中部署 ECS 的集群,通过 ECS Anywhere 把云上和云下的 ECS 都通过一套 API 来统一管理。

从 EKS Distro,到 EKS Anywhere,再到 ECS Anywhere,瞄准的都是用户本地环境,都是混合云战略的一部分。

结语

三个关于容器云原生的发布中,ECR Public 有助于构建容器生态,EKS Distro(EKS-D)是 AWS 在混合云战略上的一个重要操作。

AWS Proton 将改变开发和运维人员权责界线,让开发人员更专注于开发本身,说是改变行业规则(Game Changer)的发布也不过分,权责的重新划分关系不仅是谁承担的工作量变多的问题,而且还有出了事儿谁负责的问题。但好在这一趋势越来越明显,这一转变的推进也是势在必行的。

参考资料

[1]

ECR Public 的网站: https://gallery.ecr.aws/

[2]

EKS Distro: https://github.com/aws/eks-distro


原文链接:https://www.kxxzz.com/xx/202101/5484.html



你可能还喜欢

点击下方图片即可阅读

Kubernetes Pod 突然就无法挂载 Ceph RBD 存储卷了。。

云原生是一种信仰 🤘



码关注公众号

后台回复◉k8s◉获取史上最方便快捷的 Kubernetes 高可用部署工具,只需一条命令,连 ssh 都不需要!



点击 "阅读原文" 获取更好的阅读体验!

❤️给个「在看」,是对我最大的支持❤️

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存